home *** CD-ROM | disk | FTP | other *** search
/ Almathera Ten Pack 3: CDPD 3 / Almathera Ten on Ten - Disc 3: CDPD3.iso / fish / 001-100 / 001-025 / 002 / make / lar.h < prev    next >
C/C++ Source or Header  |  1995-03-17  |  2KB  |  87 lines

  1. /* LAR Version 2.0 */
  2.  
  3. #include <stdio.h>
  4. #include <ctype.h>
  5. #include <fcntl.h>
  6.  
  7. #ifdef MSDOS
  8. #  include <findfirs.h>
  9. #  include <bdos.h>
  10. #endif
  11.  
  12. #define ACTIVE    00
  13. #define UNUSED    0xff
  14. #define DELETED 0xfe
  15.  
  16. #define MAXFILES (256)
  17. #define BLOCK    (8192)
  18. #define DSIZE    (sizeof(struct ludir))
  19.  
  20. #define equal(s1,s2) (strcmp(s1,s2)==0)
  21.  
  22. /* if you don't have void type just define as int */
  23. #define VOID void
  24.  
  25. #define false (0)
  26. #define true ((char)0xff)
  27. typedef unsigned char bool;
  28. typedef unsigned char byte;
  29.  
  30. typedef struct {
  31.     byte hibyte;
  32.     byte mbyte2;
  33.     byte mbyte1;
  34.     byte lobyte;
  35. } lword;
  36.  
  37. typedef struct {
  38.     byte hibyte;
  39.     byte lobyte;
  40. } word;
  41.  
  42. /* convert word to int */
  43. #define wtoi(w) ((w.hibyte<<8)+w.lobyte)
  44.  
  45. /* convert int to word */
  46. #define itow(dst,src) (dst.hibyte=((src & 0xff00)>>8),dst.lobyte=(src&0x00ff))
  47.  
  48. /* convert lword to long */
  49. /* works, but is much slower than stupid assembler routine
  50. #define lwtol(lw) (((long)lw.hibyte<<24)+((long)lw.mbyte2<<16)+((long)lw.mbyte1<<8)+(long)lw.lobyte)
  51. */
  52.  
  53.  
  54. /* cheap hack */
  55. long rlwtol ();
  56. #define lwtol(lw) rlwtol(&lw)
  57.  
  58. #define ltolw(dst,src) (dst.hibyte = ((src & 0xff000000L) >> 24);\
  59.             dst.mbyte2 = ((src & 0x00ff0000L) >> 16);\
  60.             dst.mbyte1 = ((src & 0x0000ff00L) >> 8);\
  61.             dst.lobyte = (src & 0x000000ffL);)
  62.  
  63. #ifdef MSDOS
  64. union timer {
  65.     struct ftime ftimep;
  66.     long realtime;
  67. };
  68. #endif
  69.  
  70. typedef int fildesc;
  71.  
  72. struct ludir {            /* Internal library ldir structure */
  73.     byte l_stat;        /*  status of file */
  74.     byte l_name[8];        /*  name */
  75.     byte l_ext[3];        /*  extension */
  76.     lword l_off;        /*  offset in library */
  77.     lword l_len;        /*  length of file */
  78.     lword l_datetime;        /*  date and time of file. */
  79.     byte l_attrib;        /* attributes of file */
  80.     byte l_startvol;        /* starting disk number */
  81.     byte l_endvol;        /* ending volume number */
  82.     word l_cksum;        /* crc checksum */
  83.     char l_fill[3];        /*  pad to 32 bytes */
  84. };
  85.  
  86. #define SYS_ERROR (-1)
  87.